package com.ruoyi.gateway.config;

import com.ruoyi.gateway.handler.Eleven52AcHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.server.RequestPredicates;
import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import com.ruoyi.gateway.handler.ValidateCodeHandler;

/**
 * <h5>路由配置信息：定义 WebFlux 路由。</h5>
 * 
 * @author ruoyi
 */
@Configuration
public class RouterFunctionConfiguration
{
    @Autowired
    private ValidateCodeHandler validateCodeHandler;

    @Autowired
    private Eleven52AcHandler eleven52AcHandler;

    @SuppressWarnings("rawtypes") //抑制泛型相关的“原始类型”警告
    @Bean
    public RouterFunction routerFunction()
    {
        // 定义一个路由规则
        return RouterFunctions.route(
                RequestPredicates.GET("/code").and(RequestPredicates.accept(MediaType.TEXT_PLAIN)),
                eleven52AcHandler);
    }
    //这个 RouterFunctionConfiguration 不是 自定义的路由断言工厂（GatewayPredicateFactory），
    // 而是 基于 Spring WebFlux 的函数式路由配置。
    // 它用于定义 Spring Cloud Gateway 的 路由，
    // 并非 Spring Cloud Gateway 的断言工厂。
}
